package com.example.zfbsdklibrary.zfb;

import android.content.Context;
import android.util.Log;

import com.alipay.share.sdk.openapi.APAPIFactory;
import com.alipay.share.sdk.openapi.IAPApi;

/**
 * 作者：huyi
 * 日期：2020/12/17 10:08
 * 描述：
 */
public class ZfbApiGlobal {
    private final static String TAG = ZfbApiGlobal.class.getName();
    private IAPApi api;
    /**
     * 单例模式
     **/
    private static ZfbApiGlobal mWxApiGlobal = null;
    /**
     * 构造函数私有化
     **/
    private ZfbApiGlobal() {
    }

    /**
     * 公有的静态函数，对外暴露获取单例对象的接口
     **/
    public static ZfbApiGlobal getInstance() {
        if (mWxApiGlobal == null) {
            synchronized (ZfbApiGlobal.class) {
                if (mWxApiGlobal == null) {
                    mWxApiGlobal = new ZfbApiGlobal();
                }
            }
        }
        return mWxApiGlobal;
    }


    public void init(Context context, String appId, boolean needSignatureCheck) {
        api = APAPIFactory.createZFBApi(context, appId, needSignatureCheck);
    }

    /**
     * 获取IAPApi
     * @return
     */
    public IAPApi getApi() {
        check();
        return api;
    }

    /**
     * 检查 api 是否已注册，未注册则抛出空指针异常
     */
    private void check() {
        if (api == null) {
            Log.e(TAG, "ZfbApiGlobal.getInstance().init() 方法初始化");
            throw new NullPointerException("ZfbApiGlobal.getInstance().init() 方法初始化");
        }
    }
}
